/*
? 时间戳节流：在函数被调用时记录当前时间戳，然后在一定时间内忽略后续的调用，直到过了指定的时间后再次执行函数。
? 如果在等待时间内函数被再次调用，就会被忽略
? 使用时间戳的节流函数会在第一次触发事件时立即执行，以后每过 delay 秒(起码)之后才执行一次，并且最后一次触发事件不会被执行
 */
function throttle(fn, delay) {
    // let currentTime = Date.now()
    //? 如果是首节流，这个为0 第一次立即触发
    let currentTime = 0
    return (...args) => {
        let nowTime = Date.now()
        if (nowTime - currentTime > delay) {
            //? 当超过了一定的时间间隔 就是执行函数
            fn.apply(this, ...args)
            //? 然后设置基准时间
            currentTime = Date.now()
        }
    }
}
